var express = require('express');
const starModel = require('../models/starModel');
var router = express.Router();
var multer = require('multer');

// 路由接口
const storage = multer.diskStorage({
  destination: function (req, file, cb) {  //指定文件存放路径
    cb(null, 'public/images')
  },
  filename: function (req, file, cb) {  //自定义文件存储名称
    console.log(111,file);
    let type = file.mimetype.split('/')[1]  //文件后缀
    let name = Math.random().toString(35).substring(2) + Date.now() //生成随机且唯一的文件名
    cb(null, `${name}.${type}`)
  }
})
const upload = multer({ storage: storage })

router.post('/upload', upload.single('avatar'),function(req, res, next) {
  console.log(222,req.file); //获取图片文件处理中间件返回的相关信息
  let path = `/images/${req.file.filename}`
  res.send({
    code:1,
    msg:'图片上传成功',
    path
  })
});
//用于下发明星数据的接口
router.get('/star', function(req, res, next) {
  starModel.find().then(data=>{
    res.send({code:1,
      msg:'获取数据成功',
      data:data,
    });
  })
});

router.get('/star/add', function(req, res, next) {
  //向数据库录入一条数据
  //req接受客户端的数据
  //res向客户端返回数据
  //next接口拦截
  let starData=req.query;//1.接受get请求提交的数据
  console.log('服务器接收到的query参数',starData);
  new starModel(starData).save().then(()=>{//操作数据库
    res.send('数据录入成功');//返回操作结果
  }).catch((err)=>{
    res.send('数据录入失败',err);
  });
});
//post新增数据
router.post('/star', function(req, res) {
  //1.接受post请求提交的数据
  let starData=req.body;
  //2.操作数据库
  new starModel(starData).save().then(()=>{
    res.send({
      msg:'post数据录入成功'
    });
  }).catch((err)=>{
    res.send('post数据录入失败',err);
  });
  //3.返回操作结果
  
})
router.put('/star', async(req, res) =>{
  //1.接受put请求提交的数据,接收两个数据,1.条件2.更新内容
  let id=req.query.id;//条件
  let updateData=req.body;//更新内容对象
  //2.操作数据库,更新
  
  //3.返回操作结果
  try {
    let result=await starModel.updateOne({_id:id},updateData);
    res.send({
      code:1,
      msg:'更新数据成功',
    });
  } catch (error) {
    res.send({
      code:0,
      msg:'更新数据失败',
      error,
    });
  }
  })

  //删除数据
  router.delete('/star', async(req, res) =>{
    let id=req.query.id;//条件
    try {
      let result=await starModel.deleteOne({_id:id});
      console.log('删除结果',result);
      res.send({
        code:1,
        msg:'删除数据成功',
      });
    } catch (error) {
      res.send({
        code:0,
        msg:'删除数据失败',
        error,
      });
    }
  })
  
module.exports = router;
